<template>
  <!-- 定义在这里的参数都是不可在外部覆盖的，防止出现问题 -->
  <j-select-biz-component
    :value="value"
    :ellipsisLength="25"
    :listUrl="url.list"
    :columns="columns"
    v-on="$listeners"
    v-bind="attrs"
  />
</template>

<script>
  import JDate from '@comp/jeecg/JDate'
  import JSelectBizComponent from '@/components/jeecgbiz/JSelectBizComponent'

  export default {
    name: 'JSelectExaminationPaper',
    components: {JDate, JSelectBizComponent},
    props: {
      value: null, // any type
      queryConfig: {
        type: Array,
        default: () => []
      }
    },
    data() {
      return {
        url: { list: '/achexaminationpaper/achExaminationPaper/list' },
        columns: [
          { title: '试卷名称', align: 'center', width: '50%', dataIndex: 'examinationPaperName' },
          { title: '试卷ID', align: 'center', width: '25%', widthRight: '70%', dataIndex: 'id' },
          { title: '科目', align: 'center', width: '25%', widthRight: '70%', dataIndex: 'subjectName' },
          { title: '试卷编码', align: 'center', width: '25%', dataIndex: 'examinationPaperCode' },
          { title: '所属考试', align: 'center', width: '20%', dataIndex: 'examinationName' },
          { title: '试卷类型', align: 'center', width: '20%', dataIndex: 'examinationPaperTtype_dictText' },
          { title: '试卷来源', align: 'center', width: '20%', dataIndex: 'examinationPaperSource' },
          { title: '考试时间', align: 'center', width: '20%', dataIndex: 'examinationPaperTestTime' }
        ],
        // 定义在这里的参数都是可以在外部传递覆盖的，可以更灵活的定制化使用的组件
        default: {
          //默认查询条件，名称
          name: '考试卷',
          width: 1200,
          //选中后显示的值
          displayKey: 'examinationPaperName',
          //返回给前段的值
          valueKey: 'id',
          //默认查询条件，名称和对应字段
          queryParamText: '名称',
          queryParamCode: 'examinationPaperName'
        },
        // 多条件查询配置
        queryConfigDefault: [
          {
            key: 'examinationPaperCode',
            label: '试卷编码',
            // 如果包含 dictCode，那么就会显示成下拉框
            //dictCode: 'studentNo',
          },
          {
            key: 'subjectId',
            label: '试卷',
            //如果想要使用局部注册的组件，就必须要使用箭头函数
            customRender: ({key, queryParam, options}) => {
              return  <j-multi-select-tag {...options} vModel={queryParam[key]} style="width:180px;"
                                                       dictCode='cou_subject,subject_name,id,subject_iz_open =1 and del_flag =0  order by subject_order' />
            },
           dictCode: 'subjectId',
          },
        ],
      }
    },
    computed: {
      attrs() {
        return Object.assign(this.default, this.$attrs, {
          queryConfig: this.queryConfigDefault.concat(this.queryConfig)
        })
      }
    }
  }
</script>

<style lang="less" scoped></style>